var processLayerIndex ;
function layerUploadProcess(){
	processLayerIndex = layer.open({
	   	type: 2 ,
	   	shadeClose: false,
	    content: '<p id="percentage">正在上传文件，请耐心等待！</p>'+
	    '<p id="time"></p>'
	  });
}

//提示正在压缩图片
function loadCMPPicMsg(){
	$("#percentage").html("正在压缩图片！");
}

//提示上传图片
function loadUploadProMsg(){
	$("#percentage").html("开始上传文件！");
}

//提示正在存储
function loadUploadSaveMsg(){
	$("#percentage").html("正在存储文件！请稍等！");
	$("#time").html('');
}

//上传进度实现方法，上传过程中会频繁调用该方法
export function progressFunction(evt){
    // event.total是需要传输的总字节，event.loaded是已经传输的字节。如果event.lengthComputable不为真，则event.total等于0
    if (evt.lengthComputable){
       /* $("#myModal_add_progressBar").css("width",Math.round(evt.loaded / evt.total * 100) + "%");
        $("#myModal_add_progressBar").html(Math.round(evt.loaded / evt.total * 100) + "%");*/
        $("#percentage").html("已上传"+Math.round(evt.loaded / evt.total * 100) + "%");
    }
    var nt = new Date().getTime();//获取当前时间
    var pertime = (nt-ot)/1000; //计算出上次调用该方法时到现在的时间差，单位为s
    ot = new Date().getTime(); //重新赋值时间，用于下次计算
    var perload = evt.loaded - oloaded; //计算该分段上传的文件大小，单位b
    oloaded = evt.loaded;//重新赋值已上传文件大小，用以下次计算
    //上传速度计算
    var speed = perload/pertime;//单位b/s
    var bspeed = speed;
    var units = 'b/s';//单位名称
    if(speed/1024>1){
        speed = speed/1024;
        units = 'k/s';
    }
    if(speed/1024>1){
        speed = speed/1024;
        units = 'M/s';
    }
    speed = speed.toFixed(1);
    //剩余时间
    var resttime = ((evt.total-evt.loaded)/bspeed).toFixed(1);
    $("#time").html('速度：'+speed+units+'，剩余时间：'+resttime+'s');
}

export function photoCompress(file, w, objDiv) {
	var ready = new FileReader();
	/*
	 * 开始读取指定的Blob对象或File对象中的内容.
	 * 当读取操作完成时,readyState属性的值会成为DONE,如果设置了onloadend事件处理程序,则调用之.同时,result属性中将包含一个data:
	 * URL格式的字符串以表示所读取文件的内容.
	 */
	ready.readAsDataURL(file);
	ready.onload = function() {
		var re = this.result;
		canvasDataURL(re, w, objDiv)
	}
}

//压缩比例设置
export function compressionRatio(parameter){
	var size = $('#'+parameter)[0].files[0].size;//获取文件大小
	size = size/1024/1024;//将文件转换为MB
	var compression = 1;
	if(size<0.3){//图片小于0.3M不压缩
		compression = 1 ;
	}else if(size>=0.3 && size<0.5 ){//如果文件大于等于0.3MB并且小于0.5MB
		compression = 0.6;
	}else if(size>=0.5 && size<0.8 ){//如果文件大于等于0.6MB并且小于0.8
		compression = 0.5;
	}else if(size>=0.8 && size<1.5){//如果文件大于等于0.8小于1.5
		compression = 0.4;
	}else if(size>=1.5 && size<3 ){//文件大于等于1.5小于3
		compression = 0.35;
	}else if(size>=3 && size<5){
		compression = 0.3;
	}else if(size>=5 && size<8){
		compression = 0.25;
	}else if(size>=8 && size<=10){
		compression = 0.2;
	}else{
		compression = -1
	}
	return compression;
}

function canvasDataURL(path, obj, callback) {
    // console.log(path)
	//弹出开始压缩的提示
	// loadCMPPicMsg();
	var img = new Image();
	img.src = path;
	img.onload = function() {
		var that = this;
		// 默认按比例压缩
		var w = that.width, h = that.height, scale = w / h;
		w = obj.width || w;
		h = obj.height || (w / scale);
		var quality = 0.7; // 默认图片质量为0.7
		// 生成canvas
		var canvas = document.createElement('canvas');
		var ctx = canvas.getContext('2d');
		// 创建属性节点
		var anw = document.createAttribute("width");
		anw.nodeValue = w;
		var anh = document.createAttribute("height");
		anh.nodeValue = h;
		canvas.setAttributeNode(anw);
		canvas.setAttributeNode(anh);
		ctx.drawImage(that, 0, 0, w, h);
		// 图像质量
		if (obj.quality && obj.quality <= 1 && obj.quality > 0) {
			quality = obj.quality;
		}
		// quality值越小，所绘制出的图像越模糊
		var base64 = canvas.toDataURL('image/jpeg', quality);
		// 回调函数返回base64的值
		callback(base64);
	}
}
/**
 * 将以base64的图片url数据转换为Blob
 * 
 * @param urlData
 * 用url方式表示的base64图片数据
 */
export function convertBase64UrlToBlob(urlData) {
	var arr = urlData.split(','), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(
			n);
	while (n--) {
		u8arr[n] = bstr.charCodeAt(n);
	}
	return new Blob([ u8arr ], {
		type : mime
	});
}